Q. ES6 함수의 추가 기능을 말하고 각각 내용을 핵심만 설명하세요.
🧑🏻💻 Answer.
✅ 함수의 구분
ES6 이전의 모든 함수는 호출할 수 있는 객체이면서 동시에 인스턴스를 생성할 수 있는 객체여서 생성자 함수, 일반 함수, 매서드 등 함수간 명확한 구분이 없었습니다.
하지만 ES6 이후에는 프로퍼티를 활용하여 함수간 명확한 차이를 주었습니다.
일반 함수 : arguments, constructor, prototype 사용 O, super 사용 X
축약형 메서드 : arguments, super 사용 O constructor, prototype 사용 X
화살표 함수 : arguments, constructor, prototype, super 모두 사용 X
✅ 메서드 의미 변경
- 메서드는 객체 내에서 축약 표현으로 정의된 함수만을 의미합니다.
✅ 화살표 함수 추가
- function 키워드 대신 화살표를 사용해서 기존의 함수 정의 방식보다 간략하게 함수를 정의할 수 있습니다.
✅ Rest parameter 추가
Rest parameter는 함수에 전달된 인수의 목록을 배열로 전달받습니다.
function sum(...theArgs) {
let total = 0;
for (const arg of theArgs) {
total += arg;
}
return total;
}
console.log(sum(1, 2, 3)); // Expected output: 6// 잘못된 사용
function wrong1(...one, ...wrong) {}
function wrong2(...wrong, arg2, arg3) {}
// 옳은 사용
function correct1(...wrong) {}
function correct2(one, ...wrong) {}
✅ parameter 기본값 설정
- 함수를 호출할 때 매개변수의 개수만큼 인수를 전달하지 않으면 해당 매개변수의 값은 undefined이다. 이때 매개변수에 기본값을 할당하여 이를 방지할 수 있다.